Sequence Selection and Target Planning

Sequence and target planning automation within SOLIS is detailed below:

After connecting to SOLIS, you are able to automate functionality from the Mission Sequence Definition page.

Selecting Sequences

The following exemplifies how to automate parameters on the sequence selection page.

Windows PowerShell

Get SequenceSelection and Add Sequence

$seq = $sat.SequenceSelection # Get SequenceSelection object

$seq.AddSequence("CommOff", 1, 0, ("stringArg", "17", "5")) # Add sequence "CommOff" to execute at 0 seconds from the mission elapsed time

$seq.AddSequence("TargetPlan", 0, 30) # Add sequence "TargetPlan" to execute after 30 seconds after "CommOff" with no arguments

$seq.AddSequence("CommOn", 0, 100, ("3")) # Add sequence "CommOn" to execute after 100 seconds after "TargetPlan" with one argument

Get Execution List and Modify a Sequence

$el = $seq.GetExecutionList() # Get the list of Sequences in the Execution List

$s2 = $el[2] # Get the "CommOn" Sequence in the Execution List

$s2.DelayFromPrevious = 50 # Modify the Sequence's "delay from previous" time to 50 seconds

Remove Sequence and Clear Execution List

$seq.RemoveSequence() # Remove last sequence in execution list

$seq.RemoveSequence(0) # Remove first sequence in execution list

$seq.ClearExecutionList() # Clear execution list (and remove last sequence in list)
Python

Get SequenceSelection and Add Sequence

Get Execution List and Modify a Sequence

Remove Sequence and Clear Execution List

C#

Get SequenceSelection and Add Sequence

Get Execution List and Modify a Sequence

Remove Sequence and Clear Execution List

Matlab

Get SequenceSelection and Add Sequence

Get Execution List and Modify a Sequence

Remove Sequence and Clear Execution List

Target Planning

You also have the ability to automate parameters from the target planner page.

Windows PowerShell

Get and Update a Target Planner

$tp = $sat.TargetPlanner # Get Target Planner object

$tp.SlewModes # Show slew modes

$tp.SelectedSlewMode = $tp.SlewModes[0] # Pick "EigenSlew" for Slew Mode

$tp.SelectedDestinationMode = "NadirTrack" # Pick NadirTrack for Destination Mode

$tp.BtwnTgtMinDwell = 998 # Minimum time before switching to "Between Dwell Mode"

$tc = $tp.GetTargetingConfiguration("Scan") # Get Targeting Configuration called "Scan"

$tc.SelectedSatSensorConstraints = $null # Apply constraints from Satellite to Target

$tc.SatSensorConstraints # Hold on, what options do we have for this?

$tc.SelectedSatSensorConstraints = "AtlasPayload" # Never mind, let's do AtlasPayload

$targets = $tp.GetTargets((1, 4, 2, 6, 8, 7)) # Get Targets SE1, SS1, SE2, SS3, Tgt2, Tgt1 (in that order)

$tc.TargetConstraintType = "Target" # Set Target Constraint type to 'Target'

$tc.TargetConstraintSource = $targets[5].TargetName # Set Target Constraints to 'Tgt1'

$tp.UseSOLISTimes = $false # Change Solis Times to false

$tp.StartTime = "2/5/2016 2:25:01 PM" # Change start time for Target Planner

$tc.TypeOptions.Distance = 30 # Change Target Configuration Scan distance to 30km

$target = $tp.GetTarget("SS3") # Get Target "SS3"

$sc = $target.GetScanOptions("Custom_LLA") # Grab Scan Options object and change its End Target Type to Custom LLA

$sc.EndPointLatitude = 45 # Change end point latitude for SS3 to 45 degrees

$sc = $sc.SetEndTargetType("Default") # Actually, using default scan is fine

# (this gets the "updated" version of the ScanOptions object in case you change your mind later)
Python

Get and Update a Target Planner

C#

Get and Update a Target Planner

MATLAB

Get and Update a Target Planner

tp = STK.SOL_Satellite.TargetPlanner; %Get Target Planner object

StringArray2CellArray(tp.SlewModes()) %Show Slew Modes

tp.SelectedSlewMode = tp.SlewModes(1); %Pick 'Eigen Slew' for Slew Mode

tp.SelectedDestinationMode = 'NadirTrack'; %Pick NadirTrack for Between Mode

tp.SelectedClockingOption = 'FrameFixed'; %Pick FrameFixed for Between Clocking

tp.BtwnTgtMinDwell = 998; %Minimum time before switching to "Between Dwell Mode"

tc = tp.GetTargetingConfiguration('Scan'); %Get Targeting Configuration called "Scan"

tc.SelectedSatSensorConstraints = []; %Apply constraints from Satellite to Nothing

StringArray2CellArray(tc.SatSensorConstraints()) %Check what the constraint options are

tc.SelectedSatSensorConstraints = 'AtlasPayload'; %Set constraints form AtlasPayload instead of Nothing

targets = tp.GetTargets([1, 4, 2, 6, 8, 7]); %Get Targets SE1, SS1, SE2, SS3, Tgt2, Tgt1 (in that order)

tc.TargetConstraintType = 'Target'; %Change Constraint Type from Line-of-Sight to Target

tc.TargetConstraintSource = targets(5).TargetName; %Select Target 'Tgt1' for Target Constraint Source. All Targets will duplicate this constrain type

tc.ConfigurationName = 'Alt_Scan'; %Rename 'Scan' to 'Alt_Scan'

tp.UseSOLISTimes = false; %Change Use SOLIS Times to false

tp.StartTime = '2/5/2016 2:25:01 PM'; %Change Start Time for Target Planner

tc.TypeOptions.Distance = 30; %Change Target Configuration Scan Distance to 30km

target = tp.GetTarget('SS3'); %Get Target 'SS3'

scan = target.GetScanOptions('Custom_LLA'); % Grab Scan Options object and change its End Target Type to Custom LLA

scan.EndPointLatitude = 45; %Change end point latitude for SS3 to 45 degrees');

tp.GenerateSequence('C:\Users\<userName>\Desktop\TestSequence.seq'); %Generate a Target Plan Sequence called TestSequence.seq